package com.parfinex.java.phase1.module2.code.gobang;

import java.util.Scanner;

/*
    编程实现控制台版并支持两人对战的五子棋游戏。
 */
public class Gobang {
    String [][] cb = new String[16][16];
    int x;//横坐标
    int y;//纵坐标
    //1.用成员方法绘制初始化的空白棋盘
    public void chessBoard(){
        System.out.print(" \t");//先打印首行的空单元格，在用制表符 \t来把每一个元素隔开
         for (int j=0;j<16; j++){
            System.out.print(Integer.toHexString(j)+"\t");//打印首行的列表，输出格式为十六进制，在用制表符\t 来把每一个元素隔开
        }
        System.out.println(" \t"); //换行
        for (int i =0; i<16; i++){
            System.out.print(Integer.toHexString(i)+"\t");//打印每行的行标，输出格式为十六进制，在用制表符\t来把每一个元素隔开
            for (int j=0; j<16; j++){
                cb[i][j] ="+";//把"+"赋值给二维数组
                System.out.print(cb[i][j]+"\t");//输出棋盘的单元格
            }
            System.out.println(" \t");
        }
    }
    //2.提示黑方和白方分别下棋并重新绘制模棋盘
    public void playChess(){
        //定义提示黑方先下棋
        int num=0;
        boolean blackWhite = true;
        while (num <=100){

            if (true == blackWhite) {
                System.out.println("请黑方下棋，输入要下棋的横纵坐标");
                Scanner sc = new Scanner(System.in);
                x = sc.nextInt();
                y = sc.nextInt();
                cb[x][y] = "W";//把黑方要下棋的位置，赋值一个W
                blackWhite = !blackWhite;
                reloadChessBoard();
            } else {
                System.out.println("请白方下棋，输入要下棋的横纵坐标");
                Scanner sc = new Scanner(System.in);
                x = sc.nextInt();
                y = sc.nextInt();
                cb[x][y] = "B";//把白方要下棋的位置，赋值一个B
                blackWhite = !blackWhite;
                reloadChessBoard();
            }
            num++;
        };
    }
    //根据2下完棋的动作，重新显示一下棋盘当前的状态
    public void reloadChessBoard(){
        System.out.print(" \t");
        for (int j=0;j<16; j++){
            System.out.print(Integer.toHexString(j)+"\t");
        }
        System.out.println(" \t");
        for (int i =0; i<16; i++){
            System.out.print(Integer.toHexString(i)+"\t");
            for (int j=0; j<16; j++){
                System.out.print(cb[i][j]+"\t");
            }
            System.out.println(" \t");
        }
    }
    //当一方下棋后判断，是否获胜
    public void win(){
        int total=1;
        while (total<=5) {

//            cb[x][y];
            total ++;
        }


    }

    public static void main(String[] args){
        Gobang gb =new Gobang();
        gb.chessBoard();
        gb.playChess();

    }
}
